###!
Copyright (c) 2002-2016 "Neo Technology,"
Network Engine for Objects in Lund AB [http://neotechnology.com]

This file is part of Neo4j.

Neo4j is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
###

'use strict';

angular.module('neo4jApp.directives')
  .directive 'clickToCode', ['Editor', (Editor) ->
    restrict: 'A'
    link: (scope, element, attrs) ->
      code = scope.$eval(attrs.clickToCode)
      element.click (e) ->
        applyAction(Editor.setContent)
      if attrs.dblclickToExec == 'true'
        element.dblclick (e) ->
          applyAction(Editor.execScript)
      applyAction = (fn) ->
        return unless code?.length
        fn.call(Editor, code.trim())
        scope.$apply()
  ]
